SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE FUNCTION [dbo].[F_Decenas](@Numero as bigint, @Estilo as bit=0) 
RETURNS varchar(500) AS  
BEGIN 
DECLARE @Texto varchar(500)
SELECT @Texto=''
SELECT @Texto=
CASE 
WHEN @Numero=10 THEN 'diez'
WHEN @Numero=11 THEN 'once'
WHEN @Numero=12 THEN 'doce'
WHEN @Numero=13 THEN 'trece'
WHEN @Numero=14 THEN 'catorce'
WHEN @Numero=15 THEN 'quince'
WHEN @Numero>15 and @Numero<19 THEN 'dieci' + 
dbo.F_Unidades(RIGHT(CONVERT(varchar, @Numero), 1), 1)
WHEN @Numero=19 THEN 'diecinueve'
WHEN @Numero=20 THEN 'veinte'
WHEN @Numero>20 and @Numero<30 THEN 'veinti' + 
dbo.F_Unidades(RIGHT(CONVERT(varchar, @Numero), 1), 1)
WHEN @Numero=30 THEN 'treinta'
WHEN @Numero>30 and @Numero<40 THEN 'treinta y ' + 
dbo.F_Unidades(RIGHT(CONVERT(varchar, @Numero), 1), 0)
WHEN @Numero=40 THEN 'cuarenta'
WHEN @Numero>40 and @Numero<50 THEN 'cuarenta y ' + 
dbo.F_Unidades(RIGHT(CONVERT(varchar, @Numero), 1), 0)
WHEN @Numero=50 THEN 'cincuenta'
WHEN @Numero>50 and @Numero<60 THEN 'cincuenta y ' + 
dbo.F_Unidades(RIGHT(CONVERT(varchar, @Numero), 1), 0)
WHEN @Numero=60 THEN 'sesenta'
WHEN @Numero>60 and @Numero<70 THEN 'sesenta y ' + 
dbo.F_Unidades(RIGHT(CONVERT(varchar, @Numero), 1), 0)
WHEN @Numero=70 THEN 'setenta'
WHEN @Numero>70 and @Numero<80 THEN 'setenta y ' + 
dbo.F_Unidades(RIGHT(CONVERT(varchar, @Numero), 1), 0)
WHEN @Numero=80 THEN 'ochenta'
WHEN @Numero>80 and @Numero<90 THEN 'ochenta y ' + 
dbo.F_Unidades(RIGHT(CONVERT(varchar, @Numero), 1), 0)
WHEN @Numero=90 THEN 'noventa'
WHEN @Numero>90 and @Numero<100 THEN 'noventa y ' + 
dbo.F_Unidades(RIGHT(CONVERT(varchar, @Numero), 1), 0)
WHEN @Numero<10 THEN dbo.F_Unidades(@Numero, @Estilo)
END
RETURN @Texto
END



GO
